Today, computer systems have become increasingly powerful. Because of the increased capabilities of these computer systems, the number of computer applications available to be run on these computer systems has increased as well. Examples of these computer applications includes spreadsheet programs, simulation programs, and 3-D modeling programs. These applications operate on computer models, such as spreadsheets, simulations, data sets, and 3-D models.
Applications, in conjunction with the computer models on which they operate, often communicate information by the results they produce. In other words, a graphing application may produce a graph which conveys information to the viewer. Even so, if multiple versions of a computer model (e.g., multiple graphs) are placed in a sequence for the viewer, the multiple versions presented collectively form an "unfolding" communication. Thus, by stringing together multiple versions of a computer model into a series, the information represented in the versions may be presented in much of the same way as a story is told. This type of communication is often very effective.
One of the limitations of these computer models is that multiple different versions of a particular computer model cannot be sequenced together in the modeling environment to create a communication. Therefore, to use a sequence of different versions in a communication, the computer models must be removed from the application environment in which they were created. This causes these models to be static. For instance, once a picture file (pict. file) is removed from its graphing environment and embedded in a word processing document, the graph of the picture file may not be explore or extended. Thus, once the computer models are removed from their application environment, they are no longer in a live environment in which computer models may be explored or extended. It is desirable to be able to use computer models in a communications environment, such that they may be explored or extended (i.e., such that they are in a live environment).
In the prior art, methods and mechanisms with limited abilities do exist which permit a user viewing the results to determine the sequence of steps taken over time with respect to a computer model to arrive at the final result. Most notably, screen recording and macro recording have been used to record temporal sequences.
Screen recording is a method of recording the sequence of "screen shots" directly from the computer display. When turned on by the user, the screen recorder records the data image off the screen. For instance, if a person has a screen recorder on when interacting with a spreadsheet, the sequence of interactions and intermediate results made by the person when working on the spreadsheet would be recorded. Once a screen recording has been made, the sequence becomes completely separated from the live environment in which it was produced. In fact, the environment in which it was created (i.e., the spreadsheet application) is not used to play back the sequence so the sequence is not explorable or is not extensible by the recipient. Thus, a screen recording is no more than a recording of data images off the screen. It would be desirable to allow the interactions with a computer model to be recorded so that they may be played back and explored by another.
Macros, on the other hand, work in a live environment. A macro can be used to directly record a user's actions on a given document. In other words, a macro records the actions a user takes to change a document from state N-1 to state N. An example of such an action could be the deletion of a paragraph in a word processing document. One problem with macros is that they are highly context dependent since the version on which each macro operates is the version which precedes it in time. If a sequence of macros were recorded sequentially, each of the macros will play back correctly only if executed when the document starts in state N and all of the macros are executed in the order they were created. If one or more of the macros is eliminated or their temporal order changed, play back can be inaccurate. Therefore, although macros work in a live environment, if the macros are played back incorrectly, then a meaningful result will not be produced.
Another problem with macros is that if a particular result is achieved while operating with a computer model, in order to use a sequence of macros to generate or arrive at that particular result, then the author would have to, in effect, recreate the result with the macro record on (i.e., perform the same steps over again). Thus, the user does not have the benefit of accessing the work already performed. It is desirable to be capable of recording the interactions of the user with a computer model, such that the steps taken to arrive at the result do not have to be recreated after a desired result has been achieved.
Another method of recording the temporal sequence of interactions taken in producing a document is to save entire versions of documents whenever a change occurs. One of the problems associated with such an approach is that to load and create each of the versions is a very time intensive operation when the documents are large. Furthermore, saving entire versions of documents requires very large amounts of disk space. Therefore, saving whole versions of documents limits the time and space efficiency. Thus, it is desirable to allow the temporal sequence of interactions with a computer model to be recorded such that the time and memory space required to explore the temporal sequence is reduced.
The present invention provides a method and apparatus for the recording of a user's interactions with a computer model into temporal sequences. The present invention also allows the user the ability to record, playback, and explore temporal sequences in a live environment. In this manner, the computer system is able to provide model based communication.